export namespace Validate {
	//验证是否为车牌号码
	export function isPlate (value : string) : boolean {
		return /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽赣贵粤青藏川宁琼使领][A-Z][A-Z0-9]{4,5}[A-Z0-9挂学警港澳]$/.test(value);
	};
	
	/**
	 * 手机号码格式是否合法
	 * @param {string} phonenumber 
	 * @return {boolean} 校验结果
	 */ 
	export function isMobile (phonenumber : string | number) : boolean {
		if (!['string', 'number'].includes(typeof phonenumber)) {
			throw new Error('valid.ts->isMobile 参数错误');
		};
		return /^1[3-9]\d{9}$/.test(String(phonenumber));
	};

	/**
	 * 验证字符串中是否包含中文
	 * @param {string} value 
	 * @returns {boolean} 校验结果
	 */
	export function hasChn (value : string) :boolean {
		return /[\u4e00-\u9fa5]/.test(value);
	};

	/**
	 * 验证字符串中是否包含特殊字符
	 * @param {string} value 
	 * @returns {boolean} 校验结果
	 */
	export function hasSpecChat (value : string) : boolean {
		return !/^[0-9A-Z-*]+$/.test(value);
	};	
	
	/**
	 * 只能输入中文、数字、英文和部分特殊字体
	 * @param {string} value 
	 * @returns {string} 返回过滤后的结果
	 */
	export function inputFiltersStr (value : string) : string {
		return value.replace(/[^\u4E00-\u9FA5|\0-9a-zA-Z|\r\n\s,.?!，。？！…—&$=()-+/*{}[\]]/g, '');
	};	
}